Medical robotic system adapted to inhibit motions resulting in excessive end effector forces

ABSTRACT

A medical robotic system includes a surgical instrument, a robotic arm assembly, an input device, and a processor. The surgical instrument has an end effector and a sensor for sensing a force exerted by the end effector, and is operatively mounted on the robotic arm assembly. The processor is configured to receive commanded movement of the end effector from the input device, receive information of the force from the sensor, determine a reduced velocity of the commanded movement that would inhibit damage causing motion of the end effector, and control robotic manipulation of the surgical instrument in response to the commanded movement of the end effector while restricting the velocity of the commanded movement to the reduced velocity.

FIELD OF THE INVENTION

The present invention generally relates to medical robotic systems andin particular, to a medical robotic system adapted to inhibit motionsresulting in excessive end effector forces.

BACKGROUND OF THE INVENTION

Medical robotic systems such as those used in performing minimallyinvasive surgical procedures offer many benefits over traditional opensurgery techniques, including less pain, shorter hospital stays, quickerreturn to normal activities, minimal scarring, reduced recovery time,and less injury to tissue. Consequently, demand for minimally invasivesurgery using such medical robotic systems is strong and growing.

Examples of medical robotic systems include the da Vinci® SurgicalSystem and the da Vinci® S™ Surgical System from Intuitive Surgical,Inc., of Sunnyvale, Calif. Each of these systems includes a surgeon'sconsole, a patient-side cart, a high performance three-dimensional(“3-D”) vision system, and Intuitive Surgical's proprietary EndoWrist®articulating instruments, which are modeled after the human wrist sothat when added to the motions of manipulators holding the surgicalinstruments, they allow at least six degrees of freedom of motion, whichis comparable to or even greater than the natural motions of opensurgery.

The da Vinci® surgeon's console has a high-resolution stereoscopic videodisplay with two progressive scan cathode ray tubes (“CRTs”). The systemoffers higher fidelity than polarization, shutter eyeglass, or othertechniques. Each eye views a separate CRT presenting the left or righteye perspective, through an objective lens and a series of mirrors. Thesurgeon sits comfortably and looks into this display throughout surgery,making it an ideal place for the surgeon to display and manipulate 3-Dintraoperative imagery.

The patient-side cart typically includes three or more robotic armassemblies with corresponding slave manipulators for holding andmanipulating medical devices such as surgical instruments and imagecapturing devices for performing and/or viewing a medical procedure at asurgical site within a patient. To manipulate these medical devices, thesurgeon's console also includes input devices which may be selectivelyassociated with the medical devices and their respective slavemanipulators. Since the movements of the input devices and theirassociated medical devices are scaled, this allows the surgeon toperform intricate medical procedures with greater ease than conventionalopen surgery. Further, it may even allow the surgeon to perform medicalprocedures that are not even feasible using conventional open surgerytechniques.

To perform a minimally invasive surgical procedure on a patient, one ormore incisions are first made in the patient and cannulae insertedtherein to gain access to a surgical site within the patient. Setup armssupporting the slave manipulators are then positioned so as to allow theslave manipulators to attach to respective of the cannulae. Surgicalinstruments engaged on the slave manipulators are then inserted into thecannulae and properly positioned and oriented in order to perform theprocedure. A surgeon may then manipulate input devices which are coupledto the slave manipulators and their respective surgical instrumentsthrough one or more controllers to perform the medical procedure.

Although minimally invasive surgery enables keyhole access to manysurgical sites while avoiding the loss of dexterity associated withearlier laparoscopic techniques, it still has the drawback compared toopen surgery of reducing the surgeon's feeling of touch and of contactforces. During the performance of a medical procedure, however, it maybe desirable to prevent a surgical instrument's end effector fromexerting excessive force.

As an example, if the end effector is a gripper being used for suturing,a surgeon may need to tie a knot as hard as possible short of breakingthe suture. This may be difficult to do if the surgeon cannot feel howmuch force he or she is applying against the suture. Thus, it would bedesirable in such case to not only provide some mechanism to prevent thesurgeon from inadvertently breaking the suture, but also to give thesurgeon some warning when the applied force is getting too strong forthe current application.

As another example, if the end effector is an atraumatic grasper used toretract tissue or an organ, a surgeon may need to provide sufficientretraction to clear the operating field while avoiding to pull too hardon the tissues and blood supply to the retracted organ. Thus, it wouldbe desirable in such case to again provide some mechanism to prevent thesurgeon from inadvertently damaging the tissue or organ being retracted.

Many approaches, going under the general name of force feedback systems,have been proposed in the scientific literature to reproduce on theinput control devices the same forces experienced by the instrument endeffectors. Unfortunately in practice such approaches all suffer from thegeneral shortcoming of low fidelity and delayed reproduction of theslave force on the input devices. Moreover force feedback systems in theliterature always offer some risk of producing uncontrolled motions suchas system instabilities, depending on the properties of the contact atthe end effector and input device sides, and therefore, may not begenerally suited for medical applications.

OBJECTS AND SUMMARY OF THE INVENTION

Accordingly, one object of one or more aspects of the present inventionis a control system and method implemented in a medical robotic systemthat prevents an end effector being robotically manipulated by anoperator of the medical robotic system from moving in ways that wouldresult in the end effector exerting excessive force during theperformance of a medical procedure.

Another object of one or more aspects of the present invention is acontrol system and method implemented in a medical robotic system thatwarns a surgeon when motions that result in excessive forces are beingperformed by an end effector of a surgical instrument being roboticallymanipulated by the surgeon.

These and additional objects are accomplished by the various aspects ofthe present invention, wherein briefly stated, one aspect is a methodfor inhibiting damage causing commanded motions from being performed byan end effector of a robotically manipulated surgical instrument,comprising: receiving commanded movement of the end effector; receivinginformation of force being exerted by the end effector; determining areduced velocity of the commanded movement that would inhibit damagecausing forces; and controlling the robotic manipulation of the surgicalinstrument in response to the commanded movement of the end effector soas to restrict the velocity of the commanded movement to the reducedvelocity.

Another aspect is a medical robotic system, comprising: an input device;a robotic arm assembly; a surgical instrument operatively coupled to therobotic arm assembly, the surgical instrument having an end effector anda sensor adapted to sense a force being exerted by the end effector; anda processor configured to receive commanded movement of the end effectorfrom the input device, receive information of the force from the sensor,determine a reduced velocity of the commanded movement that wouldinhibit damage causing motions of the end effector, and control roboticmanipulation of the surgical instrument in response to the commandedmovement of the end effector while restricting the velocity of thecommanded movement to the reduced velocity.

Additional objects, features and advantages of the various aspects ofthe present invention will become apparent from the followingdescription of its preferred embodiment, which description should betaken in conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a top view of an operating room employing a medicalrobotic system utilizing aspects of the present invention.

FIG. 2 illustrates a simplified side view of a robotic arm assembly thatis usable with various aspects of the present invention.

FIG. 3 illustrates a block diagram of a master/slave control systemutilizing aspects of the present invention.

FIG. 4 illustrates a flow diagram of a method for generating a Cartesianforce with respect to a camera tip for use with a master/slave controlsystem utilizing aspects of the present invention.

FIG. 5 illustrates a block diagram of a first simulated domain blockincluded in a master/slave control system utilizing aspects of thepresent invention.

FIG. 6 illustrates a block diagram of a velocity limiter included in thefirst simulated domain block, utilizing aspects of the presentinvention.

FIG. 7 illustrates a flow diagram of a method for generating a gain tobe used in a velocity limiter included in the first simulated domainblock, utilizing aspects of the present invention.

FIG. 8 illustrates exemplary functions useful in a method for performinggain control in the velocity limiter included in the first simulateddomain block, utilizing aspects of the present invention.

FIG. 9 illustrates a block diagram of a second simulated domain blockincluded in a master/slave control system utilizing aspects of thepresent invention.

FIG. 10 illustrates a block diagram of a simulator included in thesecond simulated domain block, utilizing aspects of the presentinvention.

FIG. 11 illustrates a block diagram of a joint position and velocityblock included in the second simulated domain block utilizing aspects ofthe present invention.

FIG. 12 illustrates a block diagram of a first velocity limit generatorincluded in the second simulated domain block utilizing aspects of thepresent invention.

FIG. 13 illustrates exemplary functions useful in generating jointvelocity limits in the first velocity limit generator included in thesecond simulated domain block utilizing aspects of the presentinvention.

FIG. 14 illustrates a block diagram of a second velocity limit generatorincluded in the second simulated domain block utilizing aspects of thepresent invention.

FIG. 15 illustrates a flow diagram of a method for generating velocitylimits in the second velocity limit generator included in the secondsimulated domain block utilizing aspects of the present invention.

FIG. 16 illustrates exemplary functions useful in generating jointvelocity limits in the second velocity limit generator included in thesecond simulated domain block utilizing aspects of the presentinvention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 1 illustrates, as an example, a top view of an operating roomemploying a medical robotic system. The medical robotic system in thiscase is a minimally invasive robotic surgical system 100 including aConsole (“C”) utilized by a Surgeon (“S”) while performing a medicalprocedure, such as a diagnostic or surgical procedure, with assistancefrom one or more Assistants (“A”), on a Patient (“P”) who is recliningon an Operating table (“O”).

The Console includes a 3-D monitor 104 for displaying a 3-D image of asurgical site to the Surgeon, left and right manipulatable input devices108, 109, a foot pedal 105, and a processor 102. The input devices 108,109 may include any one or more of a variety of input devices such asjoysticks, gloves, trigger-guns, hand-operated controllers, or the like.The processor 102 may be a dedicated computer integrated into theConsole or positioned next or near to it, or it may be broken up into anumber of processing or controller components that are distributed in adistributed processing fashion throughout the system 100.

The Surgeon performs a medical procedure by manipulating the inputdevices 108, 109 (also referred to herein as “master manipulators”) sothat the processor 102 causes slave manipulators of their respectivelyassociated robotic arm assemblies 128, 129 to manipulate theirrespective removably coupled surgical instruments 138, 139 (alsoreferred to herein as “tools”) accordingly, while the Surgeon views thesurgical site in 3-D on the Console monitor 104 as it is captured by astereoscopic endoscope 140.

Each of the tools 138, 139, as well as the Endoscope 140, isconventionally inserted through a tool guide (such as 270 in FIG. 2)into the Patient so as to extend down to the surgical site through acorresponding minimally invasive incision such as incision 166. Thenumber of surgical tools used at one time and consequently, the numberof robotic arms being used in the system 100 will generally depend onthe medical procedure being performed and the space constraints withinthe operating room, among other factors. If it is necessary to change atool being used during a procedure, the Assistant may remove the tool nolonger being used from its robotic arm assembly, and replace it withanother tool 131 from a Tray (“T”) in the operating room.

Each of the robotic arm assemblies 122, 128, 129 includes a slavemanipulator and setup arms. The slave manipulators are robotically movedusing motor controlled joints (also referred to herein as “activejoints”) in order to manipulate and/or move their respectively heldmedical devices and their end effectors. The setup arms may be manuallymanipulated by releasing normally braked joints (also referred to hereinas “setup joints”) to horizontally and vertically position the roboticarm assemblies 122, 128, 129 so that their respective medical devicesmay be inserted into their respective tool guides. The robotic armassemblies 122, 128, 129 are mounted on a structure 120 which may be apatient-side cart or a ceiling mount.

Preferably, the monitor 104 is positioned near the Surgeon's hands sothat it will display a projected image that is oriented so that theSurgeon feels that he or she is actually looking directly down onto theoperating site. To that end, images of the tools 138, 139 preferablyappear to be located substantially where the Surgeon's hands arelocated.

The processor 102 performs various functions in the system 100. Oneimportant function that it performs is to translate and transfer themechanical motion of input devices 108, 109 to their respective slavemanipulators of robotic arm assemblies 128, 129 through control signalsover bus 110 so that the Surgeon can effectively manipulate theirrespective tools 138, 139. Another important function is to implementvarious control system processes and the methods as described herein.Although described as a processor, it is to be appreciated that theprocessor 102 may be implemented in practice by any combination ofhardware, software and firmware. Also, its functions as described hereinmay be performed by one unit, or divided up among different components,each of which may be implemented in turn by any combination of hardware,software and firmware.

For additional details on the construction and operation of medicalrobotic systems such as described herein, see, e.g., U.S. Pat. No.6,493,608 “Aspects of a Control System of a Minimally Invasive SurgicalApparatus,” and U.S. Pat. No. 6,424,885 “Camera Referenced Control in aMinimally Invasive Surgical Apparatus,” which are incorporated herein byreference.

FIG. 2 illustrates, as an example, a side view of a simplified (notnecessarily in proportion or complete) version of the robotic armassembly 128 (which is also representative of the robotic arm assemblies122, 129) holding the surgical instrument 138 for performing a medicalprocedure. A tool guide 270 is inserted through the minimally invasiveincision 166 in the patient, and coupled to the robotic arm assembly 128by a guide holder 240. The surgical instrument 138 may then be insertedinto the patient through the tool guide 270. The robotic arm assembly128 is mechanically supported by a base 201, which may be part of apatient-side movable cart 120.

Links 202, 203 are coupled together and to the base 201 throughhorizontal setup joints 204, 205. The setup joints 204, 205 in thisexample are passive joints that allow manual positioning of the arm 128when their brakes are released. For example, setup joint 204 allows link202 to be manually rotated about axis 206, and setup joint 205 allowslink 203 to be manually rotated about axis 207. This portion of therobotic arm assembly 128 including these passive joints is referred toherein as the setup arm.

Although only two links and two setup joints are shown in this example,more or less of each may be used as appropriate in this and otherrobotic arm assemblies in conjunction with the present invention. Forexample, although setup joints 204, 205 are useful for horizontalpositioning of the arm 128, additional setup joints may be included anduseful for limited vertical and angular positioning of the arm 128. Formajor vertical positioning of the arm 128, however, the arm 128 may alsobe slidably moved along the vertical axis of the base 201 and locked inposition.

The robotic arm assembly 128 also includes two active joints and anumber of gears driven by motors. A yaw joint 210 allows arm section 230to rotate around an axis 261, and a pitch joint 220 allows arm section230 to rotate about an axis perpendicular to that of axis 261 andorthogonal to the plane of the drawing. The portion of the robotic armassembly 128 including these active joints and motor driven gears isreferred to herein as the slave manipulator.

The arm section 230 is configured so that sections 231, 232 are alwaysparallel to each other as the pitch joint 220 is rotated by its motor.As a consequence, the instrument 138 may be controllably moved bydriving the yaw and pitch motors so as to pivot about the pivot point262, which is generally located through positioning of the setup joints204, 205 so as to be at the point of entry into the patient. Inaddition, the surgical instrument 138 is coupled to a carriage 245 onthe arm section 230 which in turn is coupled to a linear drive mechanismto extend or retract the instrument 138 along its insertion axis 263. Aninterface 252 including mating parts of the motor driven gears on thecarriage 245 and a proximal end of the instrument 138 to drive a threedegree-of-freedom (e.g., pitch, roll and yaw) wrist mechanism 255 andother drivable members such as jaws 253, 254 of an end effector 251 ofthe instrument 138 using conventional gear, pulley and cablearrangements, as well as rotation of a shaft of the instrument 138 so asto provide roll angular movement of the instrument 138 about itsinsertion axis 263.

Although each of the yaw joint 210, pitch joint 220 and motor drivengears in the carriage 245 is controlled by an individual joint or gearcontroller, the controllers may be controlled by a common master/slavecontrol system so that the slave manipulator of the robotic arm assembly128 may be controlled through user (e.g., surgeon or operator)manipulation of its associated master manipulator.

A multi-component force sensor 256 is provided to sense forces beingexerted by the end effector 251, such as pulling forces exerted during asuturing process. Although shown as being on or near the tip of thesurgical instrument 138, an appropriate force sensor may also or insteadbe mounted on the arm section 232, or other suitable point on the arm128, where forces exerted by the end effecter 251 may be sensed. Torquesensors that sense motor torques which are used to drive joints todesired joint positions, such as joints in the wrist mechanism 255, mayalso be used after conventional processing to determine forces exertedby the end effector 251.

FIG. 3 illustrates, as an example, a block diagram of a master/slavecontrol system 300 for controlling movement of the slave manipulator ofthe robotic arm assembly 128 and consequently, the position andorientation of its attached tool 138, as commanded by movement of themaster manipulator 108 by the Surgeon. A similar control system may alsobe provided for the slave manipulator of the robotic arm assembly 129and its associated master manipulator 109.

Both the master and slave manipulators include a number of linkagesconnected by joints so as to facilitate multiple degrees-of-freedommovement. As the Surgeon moves the master manipulator 108 from oneposition to another during the course of performing a surgicalprocedure, sensors associated with the master manipulator joints provideinformation indicating such command movement in master joint space, andsensors associated with the slave manipulator joints provide informationindicating slave manipulator and consequently, tool 138 movement inslave joint space for feedback purposes.

A master input processing unit 301 receives the information of themaster joint positions, which are sampled at the control systemprocessing rate (e.g., 1300 Hz in the present example), from the masterjoint sensors in the master manipulator 108, and computes jointvelocities from the sensed joint positions. A master forward kinematicsprocessing unit 302 receives the master joint positions and velocitiesfrom the master input processing unit 301, transforms them from masterjoint space to corresponding positions and velocities of the masterframe (i.e., the frame associated with the master manipulator 108) inCartesian space relative to the eye reference frame (i.e., the referenceframe associated with the position of the surgeon's eyes), using, forexample, a Jacobian matrix and eye related information separatelydetermined and provided in block 303.

A scale and offset processing unit 304 receives the Cartesian positionand velocity commands from the master forward kinematics processing unit302, scales the commanded movement according to a scale factor selectedto perform the surgical procedure, and takes into account offsets togenerate desired slave tool frame (i.e., the frame associated with thetool 138) positions and velocities. For economy of words, Cartesianposition is to be interpreted to include Cartesian orientation in thisspecification where appropriate. The scale adjustment is useful wheresmall movements of the slave manipulator of the robotic arm assembly 128are desired relative to larger movement of the master manipulator 108 inorder to allow more precise movement of the slave tool 138 at thesurgical site. The offsets, on the other hand, determine, for example,the corresponding position and/or orientation of an end effector frame(e.g., the frame associated with an end effector of the tool 138) in thecamera reference frame (i.e., the frame associated with the distal tipof the endoscope 140) relative to a position and orientation of themaster frame in the eye reference frame.

A simulated slave processing unit 308 (also referred to as a “simulateddomain”) receives desired slave tool frame position and velocitycommands from the scale and offset processing unit 304, and limits thedesired slave tool frame position, orientation and velocities, toassigned Cartesian limits for instance to enforce correct and intuitiveoperation of the tool 138 by keeping it within its dexterous workspaceand to prevent motions that would result in excessive forces beingexerted by the end effector 251 of the surgical instrument 138 mountedon the robotic arm assembly 128. The simulated slave processing unit 308generates simulated slave joint positions and velocities correspondingto the limited slave tool frame positions and velocities, while makingsure that the generated slave joint positions and velocities do notexceed the actual slave joint's range of motion and maximum velocities(i.e., joint limits) even in the vicinity of kinematic singularities forthe slave kinematics.

An inverse scale and offset processing unit 306 receives the simulatedjoint position and velocity commands from the simulated slave processingunit 308, and performs an inverse function to that of the scale andoffset processing unit 304 on them. A Cartesian controller 307 receivesas first inputs, the inputs to the scale and offset processing unit 304and as second inputs, the outputs of the inverse scale and offsetprocessing unit 306. The Cartesian controller 307 then generates anerror signal as a difference of the first and second inputs, and aCartesian force “F_(CART)” from the error signal such as with thefollowing formula:F _(CART) =K(Δx)+B(Δ{dot over (x)})  (1)where “K” is a spring constant, “B” is a damping constant, “Δ{dot over(x)}” is the difference between the Cartesian velocity inputs to theCartesian controller 307 and “Δx” is the difference between theCartesian position inputs to the Cartesian controller 307. For anorientation error, a corresponding torque in Cartesian space isdetermined.

A master transpose kinematics processing unit 315 receives the Cartesianforce F_(CART) through a summation node 314, and generates acorresponding torque in joint space using, for example, the Jacobiantranspose matrix and kinematic relationships associated with the mastermanipulator 108. A master output processing unit 316 receives the mastertorque signals from the master transpose kinematics processing unit 315,generates electrical currents corresponding to the master torquesignals, and supplies the electrical currents to corresponding masterjoint motors of the master manipulator 108. As a result, a surgeonoperating the master manipulator 108 feels the Cartesian force,F_(CART), whenever the surgeon is commanding a position or velocitywhich exceeds system Cartesian or slave joint limits, or would result ina kinematic singularity condition for the slave manipulator of therobotic arm assembly 128.

As the master input processing unit 301 is receiving master jointpositions from sensors in the master manipulator 108, a slave inputprocessing unit 309 is also receiving slave joint positions fromposition sensors in the slave manipulator at the control systemprocessing rate. A joint control unit 320 receives the slave jointpositions from the slave input processing unit 309 and the simulatedjoint position commands provided from the simulated slave processingunit 308, and generates slave torque command signals for the slave jointmotors and master torque feedback command signals for the master jointmotors.

The slave torque command signals are generated by the joint control unit320 so as to drive joints of the slave manipulator until feedback errorscalculated in the joint control unit 320 zero out. A slave outputprocessing unit 310 receives the slave torque command signals from thejoint control unit 320, converts them into appropriate electricalcurrents, and supplies the electrical currents to the joint motors ofthe slave manipulator so as to drive the motors accordingly.

The master torque feedback command signals are generated by the jointcontrol unit 320 as a function of the slave joint position and velocitytracking errors so as to reflect forces being exerted against the tool138 or its slave manipulator back to the master manipulator 108 so thatthey may be felt by the Surgeon. A kinematic mapping unit 311 receivesthe master torque feedback command signals from the joint control unit320, and generates the corresponding Cartesian force at the tip of thetool 138 relative to the camera frame of the endoscope 140 using theslave kinematic configuration and the previously calculated slavefulcrum (e.g., pivot point) position information provided in block 312.

A gain 313 adjusts the magnitude of the Cartesian force so as to ensuresystem stability while providing adequate force sensation to theSurgeon. The gain adjusted Cartesian force is then passed through thesummation node 314, and processed along with the Cartesian forceprovided by the Cartesian controller 307 through the master transposekinematics processing unit 315 and master output processing 316 aspreviously described in reference to their processing of the Cartesianforce provided by the Cartesian controller 307.

Additional details related to conventional aspects of the master/slavecontrol system 300, such as the various reference frames referred toherein and the calculation of the surgeon eye related informationprovided in block 303 and the slave fulcrum information provided inblock 312, which are based upon well-known mathematics, are described,for example, in previously incorporated by reference and U.S. Pat. No.6,424,885, “Camera Referenced Control in a Minimally Invasive SurgicalApparatus.”

The joint control unit 320 includes a joint controller for each activejoint and gear of the slave manipulator of the robotic arm assembly 128that is being controlled by the master/slave control system 300. Inparticular, where the slave manipulator 128 includes a yaw joint 210, apitch joint 220, and an insertion axis gear 245, such as the robotic armassembly 128 of FIG. 2, each of these joints or gears will have its owncontroller. To simplify the description herein and in the claims, theterm “joint” is to be understood as a connection (translational orrevolute) between two links, and may include gears as well as any othercontrollable component coupled to linear drive mechanisms that may beused in controlling robotic arm assemblies.

As previously mentioned, the simulated slave processing unit 308prevents motions that would result in excessive forces being exerted bythe end effector 251 of the surgical instrument 138 mounted on therobotic arm assembly 128. To do so, it receives information of the forcebeing exerted by the end effector from block 400 as well as the desiredslave tool frame position and velocity commands that it receives fromthe scale and offset processing unit 304.

FIG. 4 illustrates, as an example, a flow diagram of a methodimplementing block 400 in the processor 102 to generate a Cartesianforce with respect to the image reference frame (i.e., camera tip) froma sensed force exerted by the end effector 251 of the surgicalinstrument 138. In 401, data is received from the force sensor 256 whichsenses a force being exerted by the end effector 251 of the surgicalinstrument 138. In 402, sensor noise is filtered out of the data, and in403, the filtered data is processed by applicable kinematic mapping sothat the Cartesian force “F” with respect to the image reference frameis generated.

Three alternative embodiments for the simulated slave processing unit308 are described hereinbelow. FIGS. 5-8 illustrate a first embodimentin which velocity limiting to prevent motions that would result inexcessive forces being exerted on the end effector is performed in aCartesian velocity limiter 600. FIGS. 9-15 illustrate the second andthird embodiments in which the Cartesian velocity limiter 600 is omittedand velocity limiting to prevent motions that would result in excessiveforces being exerted on the end effector is performed in a simulator1000 and more particularly, in a joint position and velocity limiterblock 1100 included in the simulator 1000, which receives velocitylimits from a velocity limit generator (i.e., 1200 for the secondembodiment as described in reference to FIGS. 12-13 and 1200′ for thethird embodiment as described in reference to FIGS. 14-16) that is alsoincluded in the simulator 1000.

FIG. 5 illustrates, as an example, a block diagram of a first embodimentof the simulated slave processing unit 308. The desired Cartesianvelocity (identified here as 511-1) is received from the scale andoffset processing unit 304 and passed to a summation junction 532. It isto be appreciated that the desired Cartesian velocity 511-1 represents astream of digital values over time (also referred to herein as a“signal”) that is received and passed to the summation junction 532sequentially at the processing rate of the control system, which is 1300Hz in the present example.

At the junction 532, an error signal is imparted on the desiredCartesian velocity 511-1 (e.g., the commanded velocity at current time“t_(k)”) when the value of a prior desired Cartesian velocity (e.g., thecommanded velocity at prior time “t_(k-1)”) would have instructed thesimulated slave 308 to transgress one or more limitations. If the priordesired Cartesian velocity would not have caused a transgression, only asmall error signal due to numerical precision is generated and thecurrent desired Cartesian velocity 511-1 passes through the summationjunction 532 basically unchanged as far as the operator of the system isconcerned. The velocity signal passed from the summation junction 532 isreferred to as a Cartesian reference velocity and indicated by arrow533.

From the summation junction 532, the Cartesian reference velocity 533,the desired Cartesian velocity 511-1 and the Cartesian force “F” 404(generated by block 400) are fed to a Cartesian velocity limiter 600which limits the Cartesian reference velocity 533 so as to prevent, orat least inhibit, motions that would lead to excessive forces beingexerted by the end effector 251 of the surgical instrument 138, asfurther described below in reference to FIGS. 6-7. The output of theCartesian velocity limiter 600 is a limited Cartesian reference velocity534 that is provided to a simulator 540.

In the simulator 540, the limited Cartesian reference velocity 534 isprocessed by a modified Jacobian inverse controller that is adapted toinhibit the detrimental effects which result when a singularity isapproached and convert the limited Cartesian reference velocity 534 to aresulting joint velocity. The resulting joint velocity is integrated inthe simulator 540 to yield a corresponding resulting joint position. Theresulting joint velocity and position are each checked in the simulator540 to determine whether either of them would transgress a limitation.If they would not, then they pass through the simulator 540 unchanged asa simulated joint velocity 535-1 and simulated joint position 535-2. Onthe other hand, if they would, then the resulting joint velocity andposition are limited as necessary so as not to transgress theirrespective limitations and the thus limited versions of the resultingjoint velocity and joint position pass through the simulator 540 as thesimulated joint velocity 535-1 and simulated joint position 535-2.

A post-processor 536 receives the simulated joint velocity 535-1 andposition 535-2 from the simulator 540, modifies them to filter outundesirable frequency characteristics such as tremors resulting frominadvertent shaking of the master control 108 by the hand of the surgeonand resonance frequencies associated with the robotic arm assembly 128,and generates corresponding physical slave joint velocity 515-1 andposition 515-2 commands that may be used to drive the slave manipulatorof the robotic arm assembly 128 as described in reference to FIG. 3.

A slave forward kinematics block 537 also receives the simulated jointvelocity 535-1 and position 535-2 from the simulator 540 along with theCartesian coordinate values of the slave manipulator position relativeto the camera frame as provided from block 312 to compute acorresponding feedback Cartesian velocity 513-1 and position 513-2 whichare provided to the inverse scale and offset block 306 for processing asdescribed in reference to FIG. 3.

The feedback Cartesian position 513-2 is also provided to a Cartesianscaled error block 538 along with the desired Cartesian position 511-2which was generated and provided by the Scale and offset block 304. Thetwo position signals 513-2, 511-2 are compared at 538 to compute anerror signal should they not correspond. Should the two position signals513-2, 511-2 be equal, namely where the desired Cartesian velocitysignal 511-1 was not restricted in the simulated domain 308, no errorsignal is generated apart from potentially a small numerical error.

In the case where the desired Cartesian velocity 511-1 was restricted inthe simulated domain 308, the simulated joint velocity 535-1 would notcorrespond with the desired Cartesian velocity 511-1 that is input tothe simulated domain 308. Accordingly, after integration in thesimulator 540 and conversion to Cartesian space by the slave forwardkinematics block 537, the feedback Cartesian position 513-2 would notcorrespond with the original desired Cartesian position 511-2.Consequently, an error of a magnitude determined typically bysubtraction of the feedback Cartesian position 513-2 from the desiredCartesian position 511-2 and multiplication with an appropriate constantis generated by the Cartesian scaled error block 538. This error isimposed on the next desired Cartesian velocity 511-1 at the summationjunction 532.

FIG. 6 illustrates, as an example, a block diagram of the Cartesianvelocity limiter 600. The purpose of the Cartesian velocity limiter 600is to limit a component of the desired Cartesian velocity 511-1 andconsequently, the reference velocity 533 in the direction of the force“F” 404 so as to prevent motions that would result in excessive forcesbeing exerted by the end effector 251 of the surgical instrument 138.

A gain control 700 generates a gain “γ” by processing the desiredCartesian velocity 511-1 and the Cartesian force 404 according to amethod described in reference to FIG. 7. A versor block 601 calculates aforce versor “{right arrow over (μ)}” (μ_(X), μ_(Y), μ_(Z)) as describedin reference to 701-702 of FIG. 7. The generated gain “γ” is thenprovided along with components of the force versor “{right arrow over(μ)}” (μ_(X), μ_(Y), μ_(Z)) to respective multiplication blocks 611-613to generate products (γ·μ_(X), γ·μ_(Y), γ·μ_(Z)). The products are thensubtracted from respective components of the Cartesian referencevelocity 533 (i.e., having components V_(X), V_(Y), V_(Z), ω_(X), ω_(y),ω_(Z)) at nodes 621-623 to generate velocity inputs 534 (i.e., havingcomponents V_(X)′, V_(Y)′, V_(Z)′, ω_(X)′, ω_(y)′, ω_(Z)′) to thesimulator 540 according to the following equations:V _(X) ′=VREF _(X) −γ·μ _(X)  (2)V _(Y) ′=VREF _(Y) −γ·μ _(Y)  (3)V _(Z) ′=VREF _(Z) −γ·μ _(Z)  (4)ω_(X)′=ω_(X)  (5)ω_(Y)′=ω_(Y)  (6)ω_(Z)′=ω_(Z)  (7)

FIG. 7 illustrates, as an example, a flow diagram of the methodimplemented in the gain control block 700 for generating the gain “γ”which is used in the Cartesian velocity limiter 600 as described inreference to FIG. 6. In 701, the magnitude of the force “F” 404 iscalculated:

$\begin{matrix}{{\overset{\rho}{F}} = \sqrt{F_{X}^{2} + F_{Y}^{2} + F_{Z}^{2}}} & (8)\end{matrix}$

In 702, the force versor is calculated:

$\begin{matrix}{\overset{\rho}{\mu} = {\begin{pmatrix}\mu_{X} \\\mu_{Y} \\\mu_{Z}\end{pmatrix} = \begin{pmatrix}\frac{F_{X}}{\overset{\rho}{F}} \\\frac{F_{Y}}{\overset{\rho}{F}} \\\frac{F_{Z}}{\overset{\rho}{F}}\end{pmatrix}}} & (9)\end{matrix}$

In 703, the scalar product of the force versor “{right arrow over (μ)}”and desired Cartesian velocity “{right arrow over (V)}” 511-1 iscalculated:

$\begin{matrix}{\left\langle {\overset{\rho}{V},\overset{\rho}{\mu}} \right\rangle = {{V_{X} \cdot \mu_{X}} + {V_{Y} \cdot \mu_{Y}} + {V_{Z} \cdot \mu_{Z}}}} & (10)\end{matrix}$

In 704, a determination is made whether the scalar product is greaterthan zero. If the determination in 704 is NO, then the desired Cartesianvelocity 511-1 and the Cartesian force “F” are not pointing in the samedirection and the motion is not threatening to increase the force. Inparticular, if the end effector is a gripper being used for suturing atthe time, then there is no threat in such case of the gripper breakingthe suture. Consequently, in 705, the gain “γ” is set to zero andprovided to each of the gain blocks 601, 602, 603. The method thenproceeds to 706 where it jumps back to 701 to process 701-709 for thenext cycle.

On the other hand, if the determination in 704 is YES, then in 707, avalue “ƒ(•)” is computed from a velocity limiting function, such as oneof the functions depicted in FIG. 8, wherein first, second, thirdvelocity limiting functions 801, 802, 803 are each characterized bytheir values of “ƒ(•)” being zero until the magnitude of the force|{right arrow over (F)}″ exceeds a threshold value |{right arrow over(F)}|_(threshold). At that point, the value “ƒ(•)” increases linearlyfor the first function 801, polynomially for the second function 802,and exponentially for the third function 803 to the value “1”. For eachfunction, the value “1” is reached before the magnitude of the force|{right arrow over (F)}| reaches a breakage force |{right arrow over(F)}|_(breakage) which corresponds to a force magnitude which would beconsidered excessive, such as the force that would break a suture. Thetype of function used (i.e., the first, second, third, or other velocitylimiting function) depends on user preference. For example, some usersmay find the linear function 801 to be too slow at its transitions andtherefore, they may prefer a more rapid transition towards a full stopsuch as offered by the polynomial and exponential functions 802, 803.

In 708, the product of the scalar product

and the value “ƒ(•)” is computed. In 709, the gain “γ” is set equal tothe product computed in 708 and provided to each of the multiplicationblocks 611, 612, 613. The method then proceeds to 706 where it jumpsback to 701 to process 701-709 for the next cycle.

Note that in this first embodiment of the invention, after the magnitudeof the force |{right arrow over (F)}| exceeds the threshold value|{right arrow over (F)}|_(threshold′) then the translational velocitycomponents (VREF_(X), VREF_(Y), VREF_(Z)) of the Cartesian referencevelocity 533 are increasingly reduced as the magnitude of the force|{right arrow over (F)}| increases until their components in thedirection of the force “F” 404 are zeroed, which is to occur prior tothe magnitude of the force |{right arrow over (F)}| reaching a breakageforce |{right arrow over (F)}|_(breakage).

FIG. 9 illustrates, as an example, a block diagram of a second simulateddomain block 308′ which is used with the second and third embodiments ofthe invention. In the second simulated domain 308′, the Cartesianvelocity limiter 600 is eliminated and its velocity limiting function isperformed instead in a simulator 1000. The post-processor 536, slaveforward kinematics 537 and Cartesian scaled error 538, on the otherhand, function the same as their like-referenced counterparts in thefirst simulated domain 308.

FIG. 10 illustrates, as an example, a block diagram of the simulator1000 included in the second simulated domain block 308′. A modifiedJacobian Inverse controller 1004 receives the Cartesian referencevelocity 533 and imposes limitations on the received Cartesian referencevelocity 533 during its conversion into a corresponding joint spacevelocity to make allowance for singularities.

A joint position and velocity limiter block 1100 receives the resultantjoint velocity from the modified Jacobian Inverse controller 1004 andmonitors the received joint velocity to ensure that correspondingvelocity and position commands to each specific joint would nottransgress angular position and velocity limitations. To prevent motionsthat would increase the forces exerted by the end effector 251 of theinstrument 138 excessively (e.g., becoming large enough to break asuture during a suturing procedure using the instrument 138), a velocitylimiter generator 1200 receives the Cartesian force “F” 404 from block400, generates joint velocity limitations to prevent motions that wouldresult in such excess forces being exerted by the end effector 251, andprovides negative and positive joint velocity limitations 1151, 1152 tothe joint position and velocity limiter block 1100.

After the joint velocity has been monitored in block 1100, and anylimitations imposed, the resultant simulated slave joint velocity isoutput as indicated by arrow 535-1. The simulated slave joint velocityis also fed through an integrator 1010 to yield the correspondingsimulated slave joint position which is also output as indicated byarrow 535-2. The simulated joint position for each specific joint isadditionally routed to the joint position and velocity limiter block1100 and the modified Jacobian inverse block 1004 as indicated in dashedlines. The simulated joint position 535-2 is routed to the modifiedJacobian inverse block 1004 to enable transformation from Cartesian tojoint space and routed to the position and velocity limiter block 1100in order that the joint position and velocity limits can be imposed.

FIG. 11 illustrates, as an example, a block diagram of a joint positionand velocity limiter block 1100-i for the i^(th) joint of the roboticarm assembly 128. Other joints in the robotic arm assembly 128 havesimilar joint position and velocity limiter blocks. The joint positionand velocity limiter block 1100 is therefore comprised of thecombination of all such limiter blocks for all the joints in the roboticarm assembly 128. Although inputs and outputs to the limiter block1100-i show entire vectors (i.e., 1005, 535-2, 1151, 1152, 535-1), itwould be appreciated that the block 1100-i only processes the i^(th)component of these vectors (representing the i^(th) joint).

The joint velocity input from the modified Jacobian inverse controllerat 1004 is indicated by arrow 1005. The resultant velocity after havingpassed through the joint position and velocity limiter block 1100 isindicated by arrow 535-1 and the joint position input is indicated byarrow 535-2. Each joint for which position and velocity limits is to beimposed normally has physical limitations. Thus, the joint has a maximumposition in which the arm members which are pivotally connected therebyare at a maximum angular position relative to each other. Similarly, thejoint has a minimum position in which the arm members which areconnected one to another thereby are at a minimum angular positionrelative to each other. Accordingly, the joint has an angulardisplacement range extending between its minimum and its maximumposition. The angular limits of the joint are indicated by blocks 1101and 1102, respectively, block 1101 indicating the minimum position andblock 1102 the maximum position. Naturally, since we are dealing with asimulated domain, the limits can be chosen to suit. Accordingly, theminimum and maximum angular positions 1101, 1102 need not necessarilycorrespond with the actual physical positional limits of the joint, butcan be chosen at any appropriate angular positions within the angularpositional range capabilities of the joint.

The position input at 535-2 is normally varying continually as thesurgeon manipulates the master manipulator 108 during the course of amedical procedure. The positional input 535-2 is fed to the summationjunctions 1121, 1122. At the junction 1121, the angular position asinput at 535-2 is compared with the positional minimum or lower limit toyield an angular value corresponding to the angular deviation of theposition input 535-2 relative to the limit 1101. Thus, at 1121, anangular value equal to the difference between the angular limit and theangular position input 535-2 is determined. The angular deviation fromthe lower limit 1101 is then fed to a velocity determination block at1103. The processing cycle rate of the control system is known. In thiscase, it is typically 1300 Hz. At 1103, the velocity which the jointneeds to have to cause its position to coincide with the lower jointlimit 1101 at the next processing cycle is determined. This velocityvalue is then routed to a decision block at 1107. Naturally, if theangular position as input at 535-2 is far removed from the lower limit1101, the resultant velocity value derived at 1103 will be very largerand typically physically unattainable. However, as the angular deviationapproaches zero, namely, where the angular position 535-2 approaches thelower limit 1101, the velocity output from 1103 becomes less than theattainable joint velocity and becomes zero where the angular position535-2 is at the lower limit 1101.

Reference numeral 1105 represents a lower joint velocity limit which isprovided by the velocity limit generator 1200 as indicated by arrow 1151to the i^(th) joint position and velocity limiter block 1100-i. Thelower joint velocity limit is fed along with the output of the block1103 into the decision block 1107. At 1107 the two joint velocities arecompared and the larger of the two selected. It will be appreciated thatthe larger value is selected because we are regarding a velocity limitin a negative direction. Thus, the larger value is the same as thesmaller absolute value. The selected velocity value thus determineddefines the lower joint velocity limit as indicated at 1111.

It could happen that the joint is positioned beyond the positional lowerlimit 1101. This can occur when the medical robotic system 100 isinitially setup, or where the positional limits are selectively changed,for example. In such a case, it is desirable to cause the joint positionto return to within the range set by the upper and lower limits at 1101,1102, respectively. For the lower angular position limit, this isachieved by the block 1109. What is achieved by the block 1109 is aconstant curbing of positional movement beyond the lower limit. Thus, asthe surgeon manipulates the master, movements causing the angularposition of the joint to move toward the limit are permitted, but oncesuch movement has taken place, the joint is restricted to its newposition closer to the limit. The process is maintained until the jointposition is within the range set by the values at 1101, 1102,respectively.

It will be appreciated that a maximum velocity, as indicated byreference numeral 1112 is determined in a similar fashion as the minimumvelocity using right-side counterparts (i.e., node 1122 and blocks 1104,1106, 1108, 1110). In this case, reference numeral 1106 represents anupper joint velocity limit which is also provided by the velocity limitgenerator 1200 as indicated by arrow 1152 to the i^(th) joint positionand velocity limiter block 1100-i.

FIG. 12 illustrates, as an example, a block diagram of a firstembodiment of the velocity limit generator 1200. A modulus block 1201receives the Cartesian force “F” 404 and calculates its magnitude|{right arrow over (F)}| (also referred to as “modulus”) according toequation (8) above. A function block 1300 receives the magnitude |{rightarrow over (F)}| and generates a joint velocity limit 1152 according toa function of the magnitude |{right arrow over (F)}|. Since the outputof the function block 1300 is always positive, its output sets thevelocity upper limit 1152. An inverter 1202 is provided to generate thenegative value of the joint velocity limit (i.e., the lower velocitylimit 1151) as shown.

FIG. 13 illustrates, as examples, exemplary functions that may be usedin the function block 1300, wherein first, second, third velocitylimiting functions 1301, 1302, 1303 are each characterized by theirvalues of the joint velocity limit being based upon a physical jointvelocity limit “{dot over (θ)}_(physical limit)” until the magnitude ofthe force |{right arrow over (F)}| exceeds a threshold value |{rightarrow over (F)}|_(threshold). At that point, the joint velocity limitdecreases linearly for the first function 1301, polynomially for thesecond function 1302, and exponentially for the third function 1303 tothe value “0”. For each function, the value “0” is reached before themagnitude of the force |{right arrow over (F)}| reaches a breakage force|{right arrow over (F)}|_(breakage) which corresponds to a forcemagnitude which would be considered excessive, such as the force thatwould break a suture. The type of function used (i.e., the first,second, third, or other velocity limiting function) depends on userpreference. For example, some users may find the linear function 1301 tobe too gradual at its transitions and therefore, they may prefer a moremarked transition toward a full stop such as the polynomial andexponential functions 1302, 1303 as they approach zero.

FIG. 14 illustrates, as an example, a block diagram of a secondembodiment of the velocity limit generator 1200 (which is designated as1200′ to differentiate it from the first embodiment described inreference to FIG. 12). A kinematic mapping block 1401 receives theCartesian force “F” 404 and generates corresponding torque values forjoints of the robotic arm assembly 128 that would cause the end effector251 to exert the Cartesian force “F” 404. An extractor 1402 extracts thetorque for the i^(th) joint of the robotic arm assembly 128 and passesit to a control block 1500 for processing such as described in referenceto FIG. 15.

FIG. 15 illustrates, as an example, a flow diagram of a methodimplemented in the control block 1500. In 1501, a product of the jointtorque “τ” and joint velocity “{dot over (θ)}” is calculated. In 1502, adetermination is made whether the calculated product is greater thanzero. If the determination in 1502 is NO, then the joint torque andjoint velocity are in opposing directions and an excessive force is notbeing threatened at the time. Therefore, the initially set velocitylimits are not updated at this time and the method proceeds to 1503where it jumps back to 1501 to process 1501-1507 for the next cycle. Theinitially set velocity limits may be determined in this case by physicalconstraints of the robotic arm assembly 128.

On the other hand, if the determination in 1502 is YES, then in 1504, avalue “ƒ(•)” is computed from a velocity limiting function, such as oneof the functions depicted in FIG. 16, wherein first, second, thirdvelocity limiting functions 1601, 1602, 1603 are each characterized bytheir values of “ƒ(•)” being zero until the torque “τ” exceeds athreshold value threshold τ_(threshold). At that point, the value “ƒ(•)”increases linearly for the first function 1601, polynomially for thesecond function 1602, and exponentially for the third function 1603 tothe value “1”. For each function, the value “1” is reached before thetorque “τ” reaches a breakage torque τ_(breakage) which corresponds to atorque which would be considered excessive, such as a torque which wouldcause a force exerted by the end effector 251 that would break a suture.The type of function used (i.e., the first, second, third, or othervelocity limiting function) depends on user preference. For example,some users may find the linear function 1601 to be too gradual at itstransitions and therefore, they may prefer a more marked transition suchas the polynomial and exponential functions 1602, 1603 as they approachthe value “1”.

In 1505, a determination is made whether the joint velocity is greaterthan zero. If the determination in 1505 is NO, then in 1506, thepositive velocity limit 1152′ is updated according to the followingequation:New Positive Velocity Limit=[1−ƒ(•)]×[Initial Positive VelocityLimit]  (11)

On the other hand, if the determination made in 1505 is that the jointvelocity is less than or equal to zero, then in 1507, the negativevelocity limit 1151′ is updated according to the following equation:New Negative Velocity Limit=[1−ƒ(•)]×[Initial Negative VelocityLimit]  (12)and the method then proceeds to 1503 where it jumps back to 1501 toprocess 1501-1507 for the next cycle.

In addition to preventing excessive forces from being exerted by the endeffector 251, the control system 300 also warns the surgeon whenexcessive forces are being applied by the end effector. As previouslyexplained in reference to FIG. 3, when the simulated velocity orposition generated by the simulated domain 308 does not match thecommanded velocity or position, then a resistance (e.g., hapticfeedback) indicating the non-match is provided to the surgeon on themaster manipulator 108.

Alternatively, or in addition to, haptic feedback indicating theexcessive force, visual, auditory and/or vibratory warnings may also beprovided. For example, in some embodiments, resultant forces from block400 may be indicated in an alternative manner to the surgeon. Forexample, the total force may be presented in the form of a bar graphshown on the display, typically beyond a border of the displayed imagefrom the image capture device. Alternatively, the resulting forcesapplied against the slave manipulator of each robotic arm assembly maybe graphically shown as a force vector, either outside the image borderon the display, or overlaid over the slave structure in the displayedimage. Still further presentation alternatives are possible, includingthe use of false colors (for example, changing the color of a slavecomponent to yellow and then red as the component approaches and thenreaches its maximum force capability), or audibly indicating the forceon the slave structure with a tone which increases in pitch and/orvolume as forces increase. Additional tactile representations of forcemay be employed, for example, using heat to indicate force or aninertial actuator which, for example, vibrates with increasing speed oramplitude as forces increase. Such inertial actuators may apply apparentforces to an input device where no linkage supports the input devicerelative to a fixed frame of reference, for example, when usingexoskeletal gloves supported by the surgeon's arm.

In general, non-visual information such as force which is sensed by theslave may be presented in corresponding non-visual formats (i.e., forcereflecting master/slave arrangements), or in an alternative non-visualform (for example, force presented as sounds or heat). Non-visualinformation sensed by the slave may also be displayed to the Surgeon ina visual format, such as using a bar graph or force vector, as describedabove. As used herein, non-visual information includes tactile senseinformation (including force, pressure, vibration, texture, heat, andthe like), sound information (which may be sensed using a microphone ofthe slave), smell/taste (as may be sensed using a chemical orbiochemical sensor of the slave), and the like.

Although the various aspects of the present invention have beendescribed with respect to a preferred embodiment, it will be understoodthat the invention is entitled to full protection within the full scopeof the appended claims.

1. A method for inhibiting damage causing commanded motions from beingperformed by an end effector of a robotically manipulated surgicalinstrument, comprising: receiving commanded movement of the endeffector; receiving information of force being exerted by the endeffector; determining a reduced velocity of the commanded movement thatwould inhibit damage causing forces; and controlling the roboticmanipulation of the surgical instrument in response to the commandedmovement of the end effector so as to restrict the velocity of thecommanded movement to the reduced velocity.
 2. The method according toclaim 1, wherein the force and a velocity of the commanded movement aredefined with respect to a Cartesian reference frame and thedetermination of the reduced velocity comprises: determining the reducedvelocity if the velocity of the commanded movement and the force share acommon component in the Cartesian reference frame.
 3. The methodaccording to claim 2, wherein the determination of whether the velocityof the commanded movement and the force share the common componentcomprises: determining whether a scalar product of the velocity of thecommanded movement and a versor of the force is greater than zero. 4.The method according to claim 2, wherein the determination of thereduced velocity comprises: computing a velocity limiting function thatis a function of a magnitude of the force and results in the reducedvelocity when the magnitude of the force exceeds a threshold forcelevel.
 5. The method according to claim 4, wherein the computation ofthe velocity limiting function results in the reduced velocity having azero value prior to the magnitude of the force reaching a level thatwould cause tissue damage.
 6. The method according to claim 4, whereinthe computation of the velocity limiting function results in the reducedvelocity having a zero value prior to the magnitude of the forcereaching a level that would cause a filament being used in a medicalprocedure to break if pulled on by the force being exerted by the endeffector.
 7. The method according to claim 1, wherein surgicalinstrument is manipulatable by a robotic arm having a plurality ofjoints and the determination of the reduced velocity comprises:computing a joint velocity limit for at least one of the plurality ofjoints so as to decrease from an initially set velocity limit down to alower velocity limit as a magnitude of the force increases afterexceeding a threshold force level.
 8. The method according to claim 7,wherein the computation of the joint velocity limit comprises computingthe joint velocity limit so that it decreases from the initially setvelocity limit down to zero prior to the magnitude of the force reachinga level that would cause a filament being used in a medical procedure tobreak if pulled on by the force being exerted by the end effector. 9.The method according to claim 7, wherein the computation of the jointvelocity limit comprises computing the joint velocity limit so that itdecreases from the initially set velocity limit down to zero prior tothe magnitude of the force reaching a level that would cause tissuedamage.
 10. The method according to claim 1, wherein surgical instrumentis manipulatable by a robotic arm having a plurality of joints and thedetermination of the reduced velocity comprises: kinematically mappingthe force to corresponding torques on the plurality of joints; andcomputing a joint velocity limit for at least one of the plurality ofjoints so as to decrease from an initially set velocity limit to a lowervelocity limit as the torque increases after exceeding a thresholdtorque level.
 11. The method according to claim 10, wherein thecomputation of the joint velocity limit comprises computing the jointvelocity limit so as to decrease from the initially set velocity limitdown to zero prior to the torque reaching a level that would cause afilament being used in a medical procedure to break if pulled on by theforce being exerted by the end effector.
 12. The method according toclaim 10, wherein the computation of the joint velocity limit isperformed for any one of the plurality of joints only if a product ofthe torque being exerted at the one joint and a joint velocity of theone joint is greater than zero.
 13. The method according to claim 1,further comprising: causing haptic feedback to be provided to an inputdevice from whose movement the commanded movement of the end effector isderived so as to reflect a difference between the position of the inputdevice and the position of the surgical instrument that results from thereduction in the velocity of the commanded movement.
 14. A medicalrobotic system, comprising: an input device; a robotic arm assembly; asurgical instrument operatively coupled to the robotic arm assembly, thesurgical instrument having an end effector and a sensor adapted to sensea force being exerted by the end effector; and a processor configured toreceive commanded movement of the end effector from the input device,receive information of the force from the sensor, determine a reducedvelocity of the commanded movement that would inhibit damage causingmotions of the end effector, and control robotic manipulation of thesurgical instrument in response to the commanded movement of the endeffector while restricting the velocity of the commanded movement to thereduced velocity.
 15. The system according to claim 14, wherein theforce and a velocity of the commanded movement are defined a Cartesianreference frame and the processor is configured to: determine thereduced velocity if the velocity of the commanded movement and the forceshare a common component in the Cartesian reference frame.
 16. Thesystem according to claim 15, wherein the processor is configured todetermine whether the velocity of the commanded movement and the forceshare the common component by determining whether a scalar product ofthe velocity of the commanded movement and a versor of the force isgreater than zero.
 17. The system according to claim 15, wherein theprocessor is configured to determine the reduced velocity by computing avelocity limiting function that is a function of a magnitude of theforce and results in the reduced velocity when the magnitude of theforce exceeds a threshold force level.
 18. The system according to claim17, wherein the processor is configured to compute the velocity limitingfunction so that it results in the reduced velocity have a zero valueprior to the magnitude of the force reaching a level that would cause afilament being used in a medical procedure to break if pulled on by theforce being exerted by the end effector.
 19. The system according toclaim 14, wherein surgical instrument is manipulatable by a robotic armhaving a plurality of joints and the processor is configured todetermine the reduced velocity by computing a joint velocity limit forat least one of the plurality of joints so as to decrease from aninitially set velocity limit down to a lower velocity limit as amagnitude of the force increases after exceeding a threshold forcelevel.
 20. The system according to claim 19, wherein the processor isconfigured to compute the joint velocity limit by computing the jointvelocity limit so that it decreases from the initially set velocitylimit down to zero prior to the magnitude of the force reaching a levelthat would cause a filament being used in a medical procedure to breakif pulled on by the force being exerted by the end effector.
 21. Thesystem according to claim 14, wherein surgical instrument ismanipulatable by a robotic arm having a plurality of joints and theprocessor is configured to determine the reduced velocity bykinematically mapping the force to corresponding torques on theplurality of joints and computing a joint velocity limit for at leastone of the plurality of joints so as to decrease from an initially setvelocity limit to a lower velocity limit as the torque increases afterexceeding a threshold torque level.
 22. The system according to claim21, wherein the processor is configured to compute the joint velocitylimit by computing the joint velocity limit so as to decrease from theinitially set velocity limit down to zero prior to the torque reaching alevel that would cause a filament being used in a medical procedure tobreak if pulled on by the force being exerted by the end effector. 23.The system according to claim 21, wherein the processor is configured tocompute the joint velocity limit for one of the plurality of joints onlyif a product of the torque being exerted at the joint and a jointvelocity of the joint is greater than zero.
 24. The system according toclaim 14, further comprising: an input device from whose movement thecommanded movement of the end effector is derived, wherein the processoris configured to cause haptic feedback to be provided to the inputdevice so as to reflect a difference between the position of the inputdevice and the position of the surgical instrument that results from thereduction in the velocity of the commanded movement.